nAG Fortran コンパイラ 7.1 マニュアル

 
ナビゲーション:前へ   上へ   次へ

11.9 更新されたIEEE算術機能

  • [7.0] モジュールIEEE_ARITHMETICには、新しい関数IEEE_NEXT_DOWNIEEE_NEXT_UPが含まれます。 これらは単一の引数を持つ要素であり、IEEE種別のREALである必要があります(つまり、IEEE_SUPPORT_DATATYPEはその種別のREALに対して.TRUE.を返す必要があります)。 これらは、引数と等しくない次のIEEE値を、それぞれ下方向と上方向に関して返します。 ただし、−∞からの次の下方向は−∞自体であり、+∞からの上方向は+∞自体です。 これらの関数は、引数がシグナリングNaN(この場合はIEEE_INVALIDがシグナリングされる)でない限り、 例外を通知しないという点で、古いIEEE_NEXT_AFTER関数よりも優れています。

    たとえば、IEEE_NEXT_UP(-0.0)IEEE_NEXT_UP(+0.0)はどちらも、 IEEE_UNDERFLOWを通知せずに、最小の正の非正規値を返します(非正規値がサポートされている場合(IEEE_NEXT_AFTERはこれをサポートする))。

    同様に、IEEE_NEXT_UP(HUGE(0.0))は、シグナリングオーバーフローなしで+∞を返します。

  • [7.0] モジュールIEEE_ARITHMETICには、新しい名前付き定数IEEE_NEGATIVE_SUBNORMALIEEE_POSITIVE_SUBNORMAL、および新しい関数IEEE_SUPPORT_SUBNORMALが含まれます。 これらはFortran2018からのものであり、2008年のIEEE算術標準の用語の変更を反映しています。 これらは、古い関数IEEE_NEGATIVE_DENORMALIEEE_POSITIVE_DENORMAL、およびIEEE_SUPPORT_DENORMALと同等です。
  • [7.0] IEEE_GET_FLAGおよびIEEE_SET_FLAGに対するFLAG_VALUE引数、 IEEE_GET_HALTING_MODEおよびIEEE_SET_HALTING_MODEに対するHALTING引数、 IEEE_GET_UNDERFLOW_MODEおよびIEEE_SET_UNDERFLOW_MODEGRADUALに対する基本種別のLOGICALはそれぞれ必須ではなくなり、あらゆる種別のLOGICALが許可されるようになりました。

    例)

           USE F90_KIND
           USE IEEE_ARITHMETIC
           LOGICAL(byte) flags(SIZE(IEEE_ALL))
           CALL IEEE_GET_FLAG(IEEE_ALL,flags)
    
    上記は現在のIEEEフラグを1バイトのLOGICALの配列に格納します。
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks